Энтузиаст Алексей Михайлюк запустил на Эльбрусе чат-бот Alpaca(аналог ChatGPT). В отличие от ChatGPT и большинства других чат-ботов, доступных сегодня, Alpaca может работать на домашнем компьютере и ее можно дообучать.
Alpaca была создана исследовательской группой Стэнфордского университета и во многом похожа на ChatGPT, но построена на языковой модели с открытым кодом LLaMA. В настоящее время существует три основных варианта Alpaca: 7B, 13B и 30B. Скорость Alpaca в основном ограничена компьютером, на котором она работает. На современном компьютере с многоядерным процессором и большим количеством оперативной памяти, можно получить хорошую производительность. На скромном железе потребуется больше времени для генерации ответов.
Энтузиаст произвел сравнение трех процессоров: Эльбрус 8СВ, Эльбрус 16С и Ryzen 7 5800H.
Алексей использовал llama.cpp и веса alpaca-7B.
Затем собрал с параметрами -O4 -ffast-math
и -O3
на Эльбрусе и Ryzen.
Также на Эльбрус 8СВ добавил -ftune=elbrus-8c2
,
а на Эльбрус 16С
-ftune=elbrus-16c
.
Тест скорости проводился следующей командой, которая была предложена пользователем rPman на Хабре.
for a in {1..8};do printf "%s;" $a;./main -t $a -m ./models/ggml-alpaca-7b-q4.bin -s 42 -p "Random joke:" -n 32 2>&1 |grep "llama_print_timings: eval time" | cut -d "(" -f 2 | grep -o -e "[0-9\.]*" ;done
В первом тесте все три процессора запускались на 8 потоках.
Потоки | Ryzen 7 5800H 3200MHz (ms) | Эльбрус-8СВ 1500MHz (ms) | Эльбрус-16С 2000MHz (ms) |
---|---|---|---|
1 | 716,04 | 2708,62 | 2389,05 |
2 | 391,81 | 1379,05 | 1225,16 |
3 | 271,67 | 935,71 | 823,20 |
4 | 216,83 | 714,14 | 638,50 |
5 | 171,64 | 580,71 | 513,72 |
6 | 147,36 | 491,13 | 438,66 |
7 | 129,04 | 427,02 | 380,11 |
8 | 123,06 | 379,25 | 342,84 |
Ниже представлен график производительности(Меньше - лучше).
Так же при помощи энтузиаста entityfx были произведены тесты бенчмарка GGML.
1 поток | FLOPS_per_u_Second | |
---|---|---|
Эльбрус 4С | 750 МГц | 735.60 |
Эльбрус 8С | 1300 МГц | 3455.45 |
Эльбрус 8СВ | 1550 МГц | 7202.17 |
Эльбрус 16С | 2000 МГц | 10761.69 |
Core i7 2600K | 3400 МГц | 14224.27 |
Intel Core i5 8250U | 2000..3400 МГц | 27306.49 |
Байкал-М | 1500 МГц | 3307.45 |
Ryzen 7 1700X | 3400..3800 МГц | 18888.65 |
8 потоков | FLOPS_per_u_Second | |
---|---|---|
Эльбрус 4С | 750 МГц (4 потока) | 2858.15 |
Эльбрус 8С | 1300 МГц | 26892.26 |
Эльбрус 8СВ | 1550 МГц | 55424.05 |
Эльбрус 16С | 2000 МГц | 82397.41 |
Core i7 2600K | 3400 МГц | 40267.38 |
Intel Core i5 8250U | 2000..3400 МГц | 111165.17 |
Байкал-М | 1500 МГц | 24025.62 |
Ryzen 7 1700X | 3400..3800 МГц | 11718.20 |
Так же Алексей Михайлюк уточняет что на момент тестов оптимизации кода под Эльбрус не проводилось.
Вы можете изучать предупреждения, ошибки и ассемблерный код, выдаваемые компилятором, а также просматривать результат выполнения скомпилированной программы для архитектуры Эльбрус(E2K). Поддерживаются языки, C++, Fortran, Rust.
К серверам на процессорах архитектуры Эльбрус открылся бесплатный удаленный доступ, которым вы можете воспользоваться и возможно портировать что то полезное.
Данное руководство содержит основные материалы для обучения эффективному программированию на платформе Эльбрус и применимо на любом варианте Linux-подобной операционной системы.
Чат про администрирование и создание программ на платформе Эльбрус(E2K).